跳到主要内容

示例

我们接收到一条消息,需要重命名字段、计算新值并移除无用字段,以便后续流程更简洁地处理数据。

输入消息

{
"furnace": {
"temp_c": 30.5,
"humidity": 64,
"pressure": 80
},
"site": "A1"
}

目标转换要求

  • 将 furnace.temp_c 移动至 furnace.temperature.celsius
  • 新增 furnace.temperature.fahrenheit 字段(由摄氏度转换为华氏度)
  • 移除 pressure 字段
  • 将 site 字段值从 A1 修改为 B1

输出消息(示例)

{
"furnace":{
"humidity":64,
"temperature":{
"celcius":30.5,
"fahrenheit":86.9
}
},
"site":"B1"
}

需使用的节点

此场景下,我们使用 change 节点对消息属性执行 设置(Set)替换(Change)删除(Delete)移动(Move) 操作。

参数说明
规则(Rules)

每条规则按从上到下的顺序执行。
可添加多条规则完成复杂的数据转换。

规则类型(Rule Type)

设置(Set):设置或新建属性值。
替换(Change):查找并替换值。
删除(Delete):移除指定属性。
移动(Move):将属性从一个路径移动至另一个路径。

属性/源/目标(Property/Source/Target)

定义要操作的属性路径,例如 msg.payloadmsg.payload.furnace.temp_c
也可引用 flow.global. 上下文变量。

目标值(Target Value)

设置(Set):要赋值的目标值。
替换(Change):要查找并替换的目标值。

如何使用修改节点?

  1. 事件流程 中拖拽一个 inject 节点,添加以下JSON作为输入内容。
{
"furnace": {
"temp_c": 30.5,
"humidity": 64,
"pressure": 80
},
"site": "A1"
}
  1. 将其与 change 节点连接。
  2. 打开 change 节点配置面板,添加以下规则:
  • Move: msg.payload.furnace.temp_c → msg.payload.furnace.temperature.celcius
  • Set: msg.payload.furnace.temperature.fahrenheit → payload.furnace.temperature.celcius * 9/5 + 32
  • Delete: msg.payload.pressure
  • Change: 将 msg.payload.site 的值从 A1 改为 B1
  1. change 节点与 debug 节点连接,查看转换后的输出结果.